home *** CD-ROM | disk | FTP | other *** search
-
- *--------------*
- | BigAnim v4.0 |
- *==============*
-
-
- What is BigAnim?
- ~~~~~~~~~~~~~~~~
- BigAnim is an animation player (you guessed it!), and it's called that
- because it is able to display animations that are too large to be loaded
- into memory directly.
-
- The most important features of BigAnim are:
-
- o BigAnim loads the animation asynchronously, 100 KByte at a time, which
- means that while it displays one 100 KByte part of the animation, it is
- loading the next 100 KByte simultaneously.
-
- o If you're using Kickstart 3.0 or later, BigAnim will use the new double-
- buffering routines in graphics.library. If you're not, BigAnim will take
- over the display from Intuition, to increase playback speed. However, if
- you flip screens, or pull down BigAnim's screen, BigAnim will detect
- this, and use the old, intuition-friendly (and slow!) routines instead.
-
- o BigAnim has sound support.
-
-
- Usage
- ~~~~~
- From a CLI or shell, the usage is:
-
- BigAnim filename [LOADALL] [HIRES] [BLANK] [VERBOSE]
- [BUFSIZE n] [RELTIME n] [TASKPRI n]
-
- where "filename" should refer to an ANIM type 5 or 7 animation. ANIM
- type 8 is not supported, due to its relative inefficiency compared to
- ANIM type 7. For best results, type 8 animations should be converted to
- type 7. BigAnim can also be used from Workbench, and the tool types
- are identical to the options.
-
-
- Options
- ~~~~~~~
- LOADALL
-
- Tells BigAnim to load the whole animation before starting playback.
- Note that the animation is loaded in chunks, and the size of these
- chunks can be set with the BUFSIZE keyword.
-
- HIRES
-
- Forces the screen resolution to Hires/Interlace. This will only work
- if the original resolution was lores/nolace.
-
- BLANK
-
- Blanks the mouse pointer.
-
- VERBOSE
-
- BigAnim prints some info about the animation, such as screen size/depth,
- display modes, animation type, etc.
-
- Example: Explanation:
-
- File: Juggler File name
- Picture: 320 x 200 (48000 bytes) Picture size (width, height & bytes)
- Display: 320 x 200 x 6 planes Display resolution & depth
- Modes: PAL:Low Res Ham View modes
- AnimType: 5 Anim type: 5, 7 (short) or 7 (long)
- Length: 24 frames The number of frames in the anim
- Speed: 50 fps Actual playback speed (frames/second)
- BufUsage: 92-98 % Buffer utilization percentage (min-max)
-
- Note: The actual numbers for the last four lines won't be printed until
- the animation has been displayed once (twice for the "Speed" and "BufUsage"
- numbers), simply because that information isn't available until then.
- The "BufUsage" numbers will not be printed if you're using the LOADALL
- switch.
-
- BUFSIZE n
-
- Sets the buffer size to n bytes. The default is 102400 bytes (100 K), which
- means that BigAnim loads 100 K at a time.
-
- RELTIME n
-
- Sets the playback timing, in 1/50 seconds if you're running on a PAL
- system, or 1/60 for NTSC systems.
-
- TASKPRI n
-
- This sets BigAnim's task priority during playback. If your hard disk
- controller doesn't use DMA, the playback will probably be less jerky if
- you use a high task priority. The best value for priority is generally
- the same as the file system or the hard disk driver uses. Actually,
- TASKPRI can be used with good results even on DMA controllers: On my
- setup with an A590 and a Quantum LP240S, the playback becomes somewhat
- smoother when I use TASKPRI 11.
-
-
- Keys
- ~~~~
- While the animation is being played, you can press the following keys:
-
- ESC - Quits BigAnim (you can also use the right mouse button)
- Space - Pauses the animation, or restarts if already paused
- N - If paused, displays the next frame
- 0-9 - Changes playback speed. By pressing one of the keys 1-9 or
- F1-F10 F1-F9 you can directly set the RELTIME value during playback.
- If you press 0 or F10, BigAnim will use the timing information
- stored in the animation.
-
-
- Environment
- ~~~~~~~~~~~
- If you want to use certain options or settings as default, you can save
- them in an environment variable called BIGANIMOPTS. So, for instance, if
- you always want to use a buffer size of 204800 bytes, do:
-
- SetEnv BIGANIMOPTS BUFSIZE 204800
-
- and BigAnim will use that instead of the built-in default of 102400 bytes.
- Values for BUFSIZE, RELTIME and TASKPRI set via BIGANIMOPTS can be over-
- ridden with the respective command line options. All options except LOADALL
- can be used in BIGANIMOPTS.
-
-
- Sound support
- ~~~~~~~~~~~~~
- BigAnim has the ability to play IFF 8SVX sounds synchronized with the
- animation. These sounds may be added to an animation in two steps:
-
- 1) The sounds must be placed at the beginning of the animation file,
- immediately before the first ILBM picture in the animation. The file will
- have the following structure:
-
- FORM ANIM
- FORM 8SVX
- FORM 8SVX
- :
- :
- FORM ILBM
- FORM ILBM
- :
- etc.
-
- 2) If a sound is to be started at a certain frame, this frame should contain
- an "SCTL" chunk. It looks like this:
-
- struct SoundControl {
- UBYTE sc_Command, // What to do, see below
- sc_Volume; // Volume 0..64
- USHORT sc_Sound, // Sound number
- sc_Repeats, // Number of times to play the sound
- sc_Channel, // Channel(s) to use for playing (bit mask)
- sc_Frequency, // If non-zero, overrides the VHDR value
- sc_Flags; // Flags, see below
- UBYTE pad[4]; // For future use
- };
-
- The sound number, starting at 1, is simply determined from the order of
- the sounds in the file. The "Repeats" field may be set to 0, which means
- that the sound will be repeated continuously.
-
- Currently, BigAnim supports these sound commands:
-
- #define SC_CMD_PLAY_SOUND 1 // Start playing a sound
- #define SC_CMD_STOP_SOUND 2 // Stop the sound in a given channel
- #define SC_CMD_SET_FREQVOL 3 // Change frequency/volume for a channel
-
- Sound flags:
-
- #define SCB_NOINTERRUPT 0 // Play the sound, but only if
- #define SCF_NOINTERRUPT (1<<0) // the channel isn't in use
-
- Sometime soon (TM), I will release a new version of my animation tool
- "BuildAnim", that will be able to build animations with sounds, and add
- sounds to existing animations.
-
-
- Additional info
- ~~~~~~~~~~~~~~~
- o BigAnim supports CMAP chunks internal to the animation, and changes the
- screen colors accordingly.
-
- o BigAnim uses the RelTime field of the ANHD chunk to decide how much
- delay to put between frames. You can override this value by specifying
- a new value with the RELTIME keyword, or by pressing a number key during
- playback.
-
- o BigAnim uses two sets of specially optimised decompression routines,
- for processors with and without instruction cache.
-
-
- How to choose the best buffer size
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- To maximize playback speed, do this: If you have enough memory in your
- Amiga to load the entire animation, use the LOADALL switch. This will
- lead to the fastest possible playback. If you don't have that much
- memory, you can try different buffer sizes with the BUFSIZE keyword.
- Tip: If you use the VERBOSE option, BigAnim will measure the playback
- speed, so you can easily see how different buffer sizes affect playback.
- Also, the "BufUsage" numbers will tell you how well the buffers are
- utilized during playback.
-
- When choosing buffer size, please keep these facts in mind:
-
- 1. Due to the asynchronous nature of BigAnim's loading method, using
- the largest possible buffer size may not give the fastest playback.
-
- 2. Certain combinations of file size and buffer size should be avoided.
- An example: If you use a buffer size of 300 KBytes with an animation
- that's 1000 KBytes long, then the first three reads will read 300 KBytes
- each, but the fourth will only read 100 KBytes. This is clearly not
- optimal. It would be much better to use a buffer size of 250 or 334
- KBytes (or just a little bit more, to be on the safe side). So, in
- cases when the last read of an animation is less than half as long as
- the others, BigAnim will print a warning message: "non-optimal buffer
- size".
-
- There are two common problems often encountered while trying to find the
- ideal settings:
-
- Common problem #1: Sometimes the playback stops for a while, then continues.
-
- Reason: Either (1) your hard disk cannot read fast enough to keep up with
- the playback, (2) your hard disk doesn't have enough buffers, or (3) the hard
- disk driver uses all available CPU time so the playback stops.
-
- Solution: (1) Increase buffer size, and/or use RELTIME to slow down play-
- back so the hard disk can keep up. (2) Use "AddBuffers" to add more buffers
- to your hard disk. BigAnim uses the DOS "Seek" function from time to time,
- and the "Seek" operation will be much faster if you have enough buffers.
- "Enough" is approximately one buffer for every 36 KBytes of data in the
- animation file. (3) Use TASKPRI to increase BigAnim's task priority. Usually,
- using the same priority that the hard disk driver uses will give the best
- results.
-
- Common problem #2: Now and then the playback slows down temporarily.
-
- Reason: Due to hard disk transfer, the decompression can't be done at full
- speed.
-
- Solution: Use RELTIME to slow down the playback. The playback will of course
- be slower, but not as jerky as before.
-
-
- Disclaimer
- ~~~~~~~~~~
- #include <std/disclaimer.h>
-
-
- Distribution
- ~~~~~~~~~~~~
- BigAnim is freely distributable, as long as BigAnim and all related files
- are distributed unchanged.
-
-
- Feedback
- ~~~~~~~~
- If you want to send me suggestions, bug reports, etc, I can
- be reached at:
-
- Internet: d8sunch@dtek.chalmers.se
-
- Snail-mail: Christer Sundin
- 7321 Bollestad
- S-442 93 Kungälv
- Sweden
-
-